/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package videogest;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;

/**
 *
 * @author JAVA
 */
public class Fichero {

    @SuppressWarnings("CallToThreadDumpStack")
    public static String Leer(Codigo archivo) throws FileNotFoundException, IOException
    {
      /* el archivo que recibe va a contener el tipo de código a leer. Leerá desde el
       * archivo seleccionado.
       */
      FileReader fr = null;
      BufferedReader bf = null;
      String sCadena = null;
      Properties prop = System.getProperties();
        try
        {
            //"archivo" es un enum(facturas, clientes, proveedores...)
            String ruta = prop.getProperty("user.dir")+"\\src\\videogest\\codigos"+archivo+".txt";
            fr = new FileReader(ruta);
            bf = new BufferedReader(fr);
            sCadena = bf.readLine();

        }catch(Exception e){
            e.printStackTrace();
      }finally{
          try
          {
            if(null != fr)
            fr.close();
          }
          catch(Exception e2){
              e2.printStackTrace();
          }
      }

        bf.close();
        return sCadena;


    }

    @SuppressWarnings("CallToThreadDumpStack")
    private static void Escribir(char[] cadena, Codigo archivo) throws FileNotFoundException, IOException
    {
        //BufferedWriter bw = null;
        FileWriter fw = null;
        PrintWriter pw = null;
        Properties prop = System.getProperties();
        try
        {
        fw = new FileWriter(prop.getProperty("user.dir")+"\\src\\videogest\\codigos"+archivo+".txt");
        pw = new PrintWriter(fw);
            for(int i=0;i<cadena.length;i++)
            {
                pw.write(cadena[i]);
            }

        }catch(Exception e)
            {
                e.printStackTrace();
            }finally{
                try
                {
                    if(null != fw)
                    fw.close();
                    }catch (Exception e2)
                    {
                        e2.printStackTrace();
                    }
                }
            }



    

    public static void incrementarCodigo(String codigoCliente, Codigo archivo) throws FileNotFoundException, IOException
    {
            char[] cadena = codigoCliente.toCharArray();
            boolean encontrado = false;
            int j=cadena.length-1;
            while(encontrado == false && j>0)
            {
                if(cadena[j] == '9')
                {
                    cadena[j]='0';
                    j--;
                }
                else
                {
                    cadena[j]++;
                    encontrado=true;
                }

            }
            Fichero.Escribir(cadena, archivo);
    }

}

